Electronic data systems are frequently interconnected using network communication systems. Area-wide networks and channels are two approaches that have been developed for computer network architectures. Traditional networks (e.g., LAN's and WAN's) offer a great deal of flexibility and relatively large distance capabilities. Channels, such as the Enterprise System Connection (ESCON) and the Small Computer System Interface (SCSI), have been developed for high performance and reliability. Channels typically use dedicated short-distance connections between computers or between computers and peripherals.
Features of both channels and networks have been incorporated into a new network standard known as "Fibre Channel". Fibre Channel systems combine the speed and reliability of channels with the flexibility and connectivity of networks. Fibre Channel products currently can run at very high data rates, such as 1062 Mbps. These speeds are sufficient to handle quite demanding applications, such as uncompressed, full motion, high-quality video. ANSI specifications, such as X3.230-1994, define the Fibre Channel network. This specification distributes Fibre Channel functions among five layers. The five functional layers of the Fibre Channel are: FC-0--the physical media layer; FC-1--the coding and encoding layer; FC-2--the actual transport mechanism, including the framing protocol and flow control between nodes; FC-3--the common services layer; and FC-4--the upper layer protocol.
There are generally three ways to deploy a Fibre Channel network: simple point-to-point connections; arbitrated loops; and switched fabrics. The simplest topology is the point-to-point configuration, which simply connects any two Fibre Channel systems directly. Arbitrated loops are Fibre Channel ring connections that provide shared access to bandwidth via arbitration. Switched Fibre Channel networks, called "fabrics", are a form of cross-point switching.
Connections between devices in a Fibre Channel network are referred to as links. Data is transmitted across links between devices in a serial bitstream. The serial bitstream is encoded using an eight-bit/ten-bit ("8B/10B") encoding scheme. The bitstream includes a series of 10 bit characters. The devices typically deserialize and decode the incoming 10 bit characters to 8 bit characters and then serialize and encode outgoing data back to 10 bit characters. Accordingly, each Fibre Channel protocol device includes a "serdes" device for serializing and deserializing data to and from the device's link. For example, when a device outputs data onto a link, the device's serdes serializes the data from the device into a serial bitstream. When receiving data from a link, the device's serdes deserializes the serial bitstream on the link into ten-bit characters. These characters are then gathered into four character words.
When a Fibre Channel node port is properly connected to an active Fibre Channel link, the node port receives a stream of data words and Fibre Channel ordered set words (e.g., primitive signals, primitive sequences, and frame delimiters). Each ordered set word includes four ten-bit characters. The first ten-bit character is defined to be a special character known as the "K28.5" character. For all primitive signals and primitive sequences, the K28.5 ten-bit character is a "K28.5+" character. The K28.5+ character is encoded as 0.times.0FA, i.e., 0011111010. The first seven bits of this character correspond to a pattern referred to as the "comma pattern", 0011111. The deserializer within a commodity serdes device uses the comma pattern to synchronize the deserialization process to ten-bit character boundaries in the bitstream.
The inventor has determined that it would be desirable to provide apparatus and methods internal to the node port for determining the data rate of the incoming bitstream and also to provide the capability to set the clock speed of the deserializer to match that data rate.